package com.example.demo.xcel;

import com.alibaba.excel.context.AnalysisContext;
import com.alibaba.excel.event.AnalysisEventListener;

import static com.example.demo.xcel.EasyEcellMain.users0Map;
import static com.example.demo.xcel.EasyEcellMain.users1Map;

/**
 * @author FENGYU
 * @description
 * @date 2023/8/31 15:15
 */
// 编写监听器，继承 AnalysisEventListener 类并指定读取java对象
public class EasyExcelListener0 extends AnalysisEventListener<TUser0> {
    // 逐行读取 excel 信息
    public void invoke(TUser0 tUser0, AnalysisContext analysisContext) {
//        if ( EasyEcellMain.map.containsKey(tUser0.getXprojectCode() + "_" + tUser0.getUserCode() + "_" + tUser0.getPeriodNum())){
//            System.out.println(tUser0.getXprojectCode() + "_" + tUser0.getUserCode() + "_" + tUser0.getPeriodNum());
//            save.add(tUser0);
//        }else {
//            EasyEcellMain.map.put(tUser0.getXprojectCode() + "_" + tUser0.getUserCode() + "_" + tUser0.getPeriodNum() , tUser0);
//        }
//        if (tUser0.getReleaseAmount() != null && ("0".equals(tUser0.getReleaseAmount()) || "0.0".equals(tUser0.getReleaseAmount()))) {
//            EasyEcellMain.map.put(tUser0.getXprojectCode() + "_" + tUser0.getUserCode() + "_" + tUser0.getPeriodNum(), tUser0);
//        }

        //EasyEcellMain.map.put(tUser0.getXprojectCode() + "_" + tUser0.getUserCode() + "_" + tUser0.getPeriodNum(), tUser0);

        if (tUser0.getXprojectCode() != null && !"".equals(tUser0.getXprojectCode())) {
            String key = tUser0.getXprojectCode()
                    + "_" + tUser0.getCode()
                    + "_" + tUser0.getUserCode()
                    + "_" + tUser0.getPeriodNum()
                    + "_" + tUser0.getReleasePercent()
                    + "_" + tUser0.getPlusPercent();
            if (users1Map.containsKey(key)) {
                users0Map.put(key, tUser0);
            }
        }


//        if (comList.contains(tUser0.getXprojectCode())) {
//            if (perinumAble(tUser0.getPeriodNum()) && tUser0.getReleaseAmount() != null && negative(tUser0.getReleaseAmount()) <= 0) {
//                save.add(tUser0);
//            }else {
//                users0.add(tUser0);
//            }
//        } else {
//            users0.add(tUser0);
//        }
        // 此处可以执行插入操作
    }

    // excel 读取完毕触发
    public void doAfterAllAnalysed(AnalysisContext analysisContext) {
        System.out.println("finsh");
    }
}

// 当多个类型需要导入时，觉得创建多个监听器麻烦可以使用泛型监听器
class CommonEasyExcelListener0<T> extends AnalysisEventListener<T> {
    public void invoke(T t, AnalysisContext analysisContext) {
        System.out.println(t);
    }

    public void doAfterAllAnalysed(AnalysisContext analysisContext) {
        System.out.println("finsh");
    }
}
